package Array;


public class Array_demo {
    public static void main(String[] args) {


        //数组
    /*Java数组:
必须规定数组的长度，且数组长度终生不变
数组必须先初始化才可以使用，初始化的时候会分配内存；动态初始化和静态初始化不能同时存在。

一维数组：

动态初始化：
只指定数组的长度，具体数据不指定
数据类型[] 数组名 = new 数据类型[数组长度];
int sy[] = new int[10];
静态初始化：
定义数组时，直接指定各个元素的值，由元素的个数决定数组的长度。
数据类型[] 数组名 = new 数据类型[]{1,2,3,4};
int[ ] a = {1,2,3,4,5};
注意：在Java程序中声明数组时，无论用何种方式定义数组，都不能指定其长度。如以“int a[5];”方式定义数组将是非法的，该语句在编译时将出错。
二维数组：
特点是在堆内存中，各个一维数组的元素是连续的，但各个一维数组之间不是连续存放的。
动态初始化：

数据类型 [ ][ ] 数组名 = new 数据类型[行数][列数];
int [ ][ ] a = new int [3][4];
虽然在应用上很像C语言中的多维数组，但还是有区别的，在C语言中定义一个二维数组，必须是一个m*n二维矩阵块，如图1所示。Java语言的多维数组不一定是规则的矩阵形式*/


        //静态初始化数组格式
        //数据类型[] 数组名 = new 数据类型[]{元素1，元素2....};
        //double[] scores =new double[]{89.9,43.2};
        //int[] ages =new int[]{10,20,30};

        //简化格式
        //数据类型[] 数组名 ={元素1，元素2.....};    少了new数据类型
        //int[] ages ={12,24,36};//简化格式和c语言差不多，但是又不完全一样。
        //String[] name ={"李四","张三","王二麻子"};//字符串类型的数组

        //和c语言一样，数组名就是首元素的地址  数组是引用类型

        //数组名.length就是数组的长度

        //动态数组初始化
        //先定义后，后赋值
        //格式：  数据类型[] 数组名 =new 数据类型[长度];
        //int[] ages = new int[4];

        //数组元素的默认值
        //整型数组： 0
        //字符类型： 0
        //浮点型数组：0.0
        //布尔类型的数组： false
        //引用类型： null   String[]数组
        //
        //与c语言不同的是，两种初始化方式不可混用。
        //例如：int[] arr =new int[3]{30,40,50}   这样的写法是错误的 必须删去[]中的数字， 或者删去{}和其中的元素。
        //

        //数组的遍历
        int[] arr={1,10,52};
        for (int i=0;i<arr.length;i++) {
            System.out.println(arr[i]);
        }

    }
}
